//
//  ViewController.m
//  PhoneCallMonitor
//
//  Created by paycloud110 on 15/12/16.
//  Copyright © 2015年 paycloud110. All rights reserved.
//

#import "ViewController.h"
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

@interface ViewController ()

@property(strong, nonatomic) CTCallCenter *callCenter;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self phoneCallMonitor];
}

- (void)phoneCallMonitor
{
    self.callCenter = [[CTCallCenter alloc] init];
    
    __weak typeof(self) weakSelf = self;
    _callCenter.callEventHandler = ^(CTCall* call) {
        if ([call.callState isEqualToString:CTCallStateDisconnected])
        {
            NSLog(@"挂断了电话咯 Call has been disconnected");
            
        }
        else if ([call.callState isEqualToString:CTCallStateConnected])
        {
            NSLog(@"电话通了 Call has just been connected");
        }
        else if([call.callState isEqualToString:CTCallStateIncoming])
        {
            [weakSelf sendLocalNotification];
            NSLog(@"来电话了 Call is incoming");
            // 用来做暂停录音之类的。
        }
        else if ([call.callState isEqualToString:CTCallStateDialing])
        {
            NSLog(@" 正在播出电话 call is dialing");
        }
        else
        {
            NSLog(@"嘛都没做 Nothing is done");
        }
    };
}

- (void)sendLocalNotification
{
    // 1. 创建一个本地通知
    UILocalNotification *ln = [[UILocalNotification alloc] init];
    // 1.1 设定通知发送时间
    ln.fireDate = [NSDate dateWithTimeIntervalSinceNow:1];
    // 1.2 设置通知内容
    ln.alertBody = @"要不要，要不要，，，，?";
    /**  ---------通知的附加项------------ */
    // 通知的重复频率 (最小频率是每分钟发送一次)
    //    ln.repeatInterval = NSCalendarUnitMinute;
    // 滑动解锁文字
    ln.hasAction = NO;
    ln.alertAction = @"考虑下";
    // 设置通知打开时的启动图片
    // 注意: 无论此处写的什么图片, 都会只加载系统的启动图片
    ln.alertLaunchImage = @"xxx";
    // 设置通知标题(只在通知中心显示)，标题的形式展示
    //    ln.alertTitle = @"斗地主";
    // 设置通知声音
    ln.soundName = @"buyao.wav";
    // 设置图标右上角提醒数字(如果是0, 不显示)
    ln.applicationIconBadgeNumber = 1;
    // 设置通知的操作组
    ln.category = @"select";
    // 2. 发送一个本地通知
    // 通知是一个应用程序级别的操作UIApplication
    //    [[UIApplication sharedApplication] presentLocalNotificationNow:ln]; // 立即发送一个通知
    
    // 计划发送一个本地通知
    [[UIApplication sharedApplication] scheduleLocalNotification:ln];
}





@end
